Amazon EC2 のアクション 「RunInstances」 にリソースタイプを指定せず、条件キーの指定でアクションを許可したいのですが、想定した動作になりませんでした。 原因と対処方法を教えてください。
困っていた内容
RunInstances
のアクションで条件キーを利用して、リソースタイプを指定せず、特定の条件のみアクションを許可したいのですが、想定した動作になりません。
原因と対処方法を教えてください。
{ "Sid": "ECInstances", "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:RequestTag/test": "test" } } } ] }
どう対応すればいいの?
- 原因
特定のリソースタイプを指定しないで、全てのリソースを指定している場合、上記のポリシーとなります。
RunInstances
のアクションは、リソースタイプの指定が必須のため、 上記のように設定している場合は、想定した動作が得られなくなります。
- 対処方法
以下のようにリソースタイプを指定することで、想定した動作を実現できます。
{ "Sid": "ECInstances", "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEqualsIfExists": { "aws:RequestTag/test": "test" } } } ] }
RunInstances
のアクションで指定できるリソースタイプの一部は以下となります。
利用されているリソースタイプにより、サポートされている条件キーも異なりますので、ご利用いただく際は必要に応じてご確認ください。
image*
instance*
network-interface*
security-group*
subnet*
volume*
指定できるリソースタイプについては、ドキュメント をご参照ください。